Maintaining Access(持續存取)
獲得對目標系統的訪問權限並提升權限後,攻擊者會嘗試維持他們的訪問權限,以便進一步利用目標系統,或將被入侵的系統變成一個攻擊其他網路系統的跳板。攻擊者遠程執行惡意應用程式,如鍵盤記錄器(keyloggers)、間諜軟體(spyware)以及其他惡意程序,以維持對目標系統的訪問並竊取關鍵資訊,例如使用者名稱和密碼。攻擊者使用rootkits、隱寫術(steganography)、NTFS資料流(NTFS data streams)等技術來隱藏他們的惡意程序或文件,以維持對目標系統的訪問。
當攻擊者執行惡意應用程式時,這被稱為「擁有(owning)」系統。攻擊者在受害者的機器上遠程執行惡意程序,收集可能導致隱私洩露或被利用的資訊,獲取未經授權的系統資源訪問權限、破解密碼(crack the password)、截取螢幕截圖,安裝後門程式(backdoor)以維持對系統的輕鬆訪問等。
攻擊者在目標系統上執行的惡意程序:
- Keyloggers(鍵盤記錄器)
- Spyware(間諜軟體)
- Backdoors(後門程序)
- Crackers(破解者)
遠程代碼執行技術
-
Exploitation for Client Execution(客戶端執行的漏洞利用)
- 不安全的軟體編碼實踐可能使軟體易受各種攻擊。
- 攻擊者可以利用軟體中的漏洞(vulnerabilities in software)進行有針對性的攻擊,目的是執行任意代碼,以維持對遠程系統的訪問權限。
-
Service Execution(服務執行)
- 系統服務是在作業系統的後端運行和操作的程序。
- 攻擊者可以運行與Windows系統服務(如Service Control Manager)通信的二進位文件或命令,以維持對遠程系統的訪問權限。
-
Windows Management Instrumentation (WMI)(Windows管理工具)
- WMI 是Windows管理中的一個功能,提供了本地和遠程訪問Windows系統資源的平台。
- 攻擊者可以利用WMI功能與遠程目標系統互動,收集系統資源資訊,並進一步執行代碼以維持對目標系統的訪問權限。
-
Windows Remote Management (WinRM)(Windows遠程管理)
- WinRM是一種基於Windows的協議,旨在允許用戶運行可執行文件、修改系統服務和遠程系統上的註冊表。
- 攻擊者可以使用winrm命令與WinRM進行互動,並在遠程系統上執行載荷作為橫向移動的一部分。
執行應用程式的工具
-
Dameware Remote Support
- Dameware Remote Support 是一個遠程控制和系統管理工具,簡化了遠程 Windows 管理。
-
Ninja
-
Pupy
-
PDQ Deploy
-
ManageEngine Desktop Central
-
PsExec
這些工具均可用來遠程管理、控制及執行應用程式,協助攻擊者維持對目標系統的存取權。
Keylogger(鍵盤側錄器)
- Keystroke loggers 是用來監視每一個鍵盤按鍵的程序或硬體設備,當用戶在鍵盤上輸入時,這些按鍵會被記錄到一個文件中,或者傳送到遠程位置。
- 鍵盤側錄器允許攻擊者獲取受害者的機密資訊,例如電子郵件ID、密碼、銀行資料、聊天室活動、IRC 以及即時消息。
- 實體的鍵盤側錄器會被安置在鍵盤硬體和作業系統之間。
流程
- 攻擊者通過發送惡意文件,讓用戶點擊並安裝了keylogger。
- 用戶在鍵盤上輸入,例如密碼。
- 這些按鍵輸入被記錄到日誌文件中,並且發送到遠程位置給攻擊者。
技術實現
- **Keyboard Injection(鍵盤注入)**通過鍵盤驅動程序來捕獲按鍵輸入(如Keyboard.sys),通過內核注入來記錄並傳送資訊。
Types of Keystroke Loggers 分類簡介:
-
Hardware Keystroke Loggers (硬體按鍵記錄器):
-
PC/BIOS Embedded: 植入 BIOS 或電腦內的按鍵記錄器,難以偵測。
-
Keylogger Keyboard: 記錄按鍵操作的鍵盤,內建記錄功能。
-
External Keylogger: 外接式裝置,如藍牙或 Wi-Fi,安裝在鍵盤或電腦中。
-
PS/2 and USB Keylogger: 連接於 PS/2 或 USB 介面的按鍵記錄器。
-
Acoustic/CAM Keylogger: 使用聲音或鏡頭來記錄鍵盤操作。
-
Bluetooth Keylogger: 通過藍牙進行按鍵數據傳輸的裝置。
-
Wi-Fi Keylogger: 利用 Wi-Fi 連接來傳送按鍵記錄。
-
Software Keystroke Loggers (軟體按鍵記錄器):
-
Application Keylogger: 安裝在應用程式內部以記錄按鍵輸入。
-
Kernel Keylogger: 直接在作業系統核心層次運行的記錄器,難以檢測。
-
Hypervisor-based Keylogger: 基於虛擬機層次來記錄鍵入資料。
-
Form Grabbing Based Keylogger: 捕捉使用者填寫表單資料的記錄器。
-
Javascript Based Keylogger: 使用 JavaScript 來記錄網頁表單的按鍵輸入。
-
Memory Injection Based Keylogger: 將按鍵記錄器植入記憶體來進行記錄。
如何使用 Metasploit 進行遠端的鍵盤記錄攻擊 (Remote Keylogger Attack):
- 攻擊者可以使用工具如 Metasploit 來啟動持續的按鍵記錄 (persistent keylogging)。
- 使用指令 Keyscan_start 來開始在目標系統上執行按鍵記錄程式。
- 使用 Keyscan_dump 指令來擷取目標機器使用者的按鍵記錄。
此外,攻擊者可以使用 Metasploit 的 lockout_keylogger 模組來自動化整個擷取和數據轉儲過程,這可以讓攻擊者輕鬆地收集和分析受害者的按鍵輸入,進而竊取敏感資料。
Keyloggers for Windows
▪Spyrix Keylogger Free Source: https://www.spyrix.com
▪ REFOG Personal Monitor (https://www.refog.com)
▪ All In One Keylogger (https://www.relytec.com)
▪ Elite Keylogger (https://www.elitekeyloggers.com)
▪ StaffCop Standard (https://www.staffcop.com)
▪ Spytector (https://www.spytector.com)
Keyloggers for macOS
▪Refog Mac Keylogger Source: https://www.refog.com
▪Spyrix Keylogger For Mac OS (https://www.spyrix.com)
▪ Elite Keylogger for Mac (https://www.elite-keylogger.net)
▪ Aobo Mac OS X Keylogger (https://www.easemon.com)
▪ KidLogger for MAC (https://kidlogger.net)
▪ Perfect Keylogger for Mac (https://www.blazingtools.com)
間諜軟體(Spyware)
是一種隱秘的電腦監控軟體,允許攻擊者秘密記錄目標電腦上所有的用戶活動。它會自動將記錄日誌透過互聯網(例如:電子郵件、FTP、指揮控制中心透過加密流量、HTTP、DNS等)傳送給遠程攻擊者。這些日誌包含系統各個領域的資訊,例如發送的電子郵件、訪問的網站、每個按鍵(包括Gmail、Facebook、Twitter、LinkedIn的登錄/密碼)、文件操作以及在線聊天記錄。此外,它還會定期截屏,類似於一台監控攝像頭對準電腦顯示器。
間諜軟體類似於木馬病毒,通常被作為免費軟體或從互聯網下載的軟件中的隱藏組件一起安裝。為了避免被檢測和刪除,它會隱藏其進程、文件和其他對象。這使攻擊者能夠收集有關受害者或組織的資訊,例如電子郵件地址、用戶登錄資訊、密碼、信用卡號、銀行憑據等。
Spyware 傳播方式
間諜軟體的安裝通常在用戶不知情或未經其同意的情況下進行,這可以通過“捆綁”間諜軟體到其他應用程式中來實現。間諜軟體利用了廣告Cookie,這是其一種子分類。當用戶訪問包含間諜軟體的網站時,這些網站會在用戶點擊某些內容後自動安裝間諜軟體,這個過程被稱為“驅動式下載”(Drive-by Downloading)。由於正常的網頁瀏覽或下載活動,系統可能無意間感染間諜軟體。它甚至可能偽裝成反間諜軟體,當用戶下載和安裝與間諜軟體捆綁在一起的程式時自動運行。
Spyware 的功能
間諜軟體的主要功能是監視用戶活動,並且一旦攻擊者成功將間諜軟體安裝到受害者的電腦上,它還能執行多種攻擊行為。具體來說,間諜軟體可以幫助攻擊者在目標電腦上執行以下操作:
- 竊取用戶的個人資訊並發送至遠程伺服器或劫持者
- 監視用戶的在線活動
- 顯示煩人的彈出式廣告
- 將瀏覽器重定向至廣告網站
- 更改瀏覽器的默認設置並防止用戶恢復
- 在瀏覽器的收藏夾中添加多個書籤
- 降低整體系統安全性
- 降低系統性能,導致軟體不穩定
- 連接至遠程色情網站
- 在桌面上放置指向惡意間諜軟體網站的快捷方式
- 竊取用戶的密碼
- 向用戶發送目標電子郵件
- 更改首頁並阻止用戶恢復
- 修改動態鏈接庫(DLL),導致瀏覽器運行緩慢
- 更改防火牆設置
- 監控並報告用戶訪問的網站
間諜軟體工具
Spytech SpyAgent
來源:https://www.spytech-web.com
Spytech SpyAgent 是一款電腦間諜軟體,它允許您秘密監控用戶在您的電腦上所做的一切。SpyAgent 提供了一系列重要的電腦監控功能,包括網站、應用程式和聊天客戶端的封鎖,日誌記錄排程,以及通過電子郵件或 FTP 遠程傳輸日誌。攻擊者利用 Spytech SpyAgent 來追蹤目標系統上訪問的網站、執行的線上搜索、使用中的程式和應用程式、文件和列印資訊、電子郵件通信、用戶登入憑據等。
Power Spy
來源:https://ematrixsoft.com
Power Spy 是一款PC用戶活動監控軟體。它會在系統後台秘密運行並進行監控,系統上的所有用戶都不會察覺到它的存在。攻擊者利用此工具監控目標系統,並記錄所有用戶活動,如截屏、按鍵記錄、執行的應用程式、打開的視窗、訪問的網站、聊天對話、打開的文件等。
這些工具能夠有效地監控並記錄用戶的所有活動,並且通常會以完全隱蔽的方式運行,使目標用戶無法察覺其存在,從而使攻擊者能夠長期獲取敏感資訊。
間諜軟體類型及其功能介紹
-
桌面間諜軟體(Desktop Spyware)
- 桌面間諜軟體允許攻擊者蒐集目標用戶在其電腦上的活動紀錄,並在未經用戶知情或同意的情況下,透過網路將這些資料傳送給第三方。這類間諜軟體可以記錄使用者的桌面操作、上網活動、軟體使用情況、鍵盤輸入等。
-
例子:ActivTrak, Veriato Cerebral, NetVizor, SoftActivity Monitor, SoftActivity TS Monitor
-
電子郵件間諜軟體(Email Spyware)
- 電子郵件間諜軟體能監控並記錄所有進出電子郵件,並將其轉發到指定的電子郵件地址。它通常運行在隱形模式下,不被用戶察覺。
-
網路間諜軟體(Internet Spyware)
- 網路間諜軟體可以監控使用者瀏覽過的所有網頁,並按時間順序記錄所有訪問的URL。該軟體會自動在系統啟動時加載,並在背景執行且不被檢測到。
-
兒童監控間諜軟體(Child-Monitoring Spyware)
- 兒童監控間諜軟體允許家長監控孩子在電腦上所做的一切,包括上線及離線活動。它能記錄所有使用的程式和訪問的網站、鍵盤輸入、滑鼠點擊次數,並定期截取活動螢幕。
-
螢幕擷取間諜軟體(Screen-Capturing Spyware)
- 這類間諜軟體可以通過定時拍攝螢幕截圖來監控電腦活動。它可在當地或遠端指定的時間間隔拍攝螢幕,並將圖片存儲到本地磁碟或發送到預設的電子郵件或 FTP 伺服器。
-
USB 間諜軟體(USB Spyware)
- USB 間諜軟體通常被設計為在未經用戶同意或通知的情況下,自動從 USB 裝置複製間諜軟體到硬碟。它可以在隱藏模式下執行,並監控 USB 裝置與電腦之間的所有數據傳輸。
-
音訊間諜軟體(Audio Spyware)
- 音訊間諜軟體設計用來監聽並記錄電腦上發出的所有聲音,並將其保存在隱藏的文件中供日後檢索。攻擊者可利用它來監控會議紀錄、電話通話和即時訊息中的語音對話。
-
視訊間諜軟體(Video Spyware)
- 視訊間諜軟體能夠透過系統上的攝影鏡頭進行監視,並將影像記錄根據預設排程進行保存或發送到遠端伺服器。
-
印表機間諜軟體(Print Spyware)
- 印表機間諜軟體用於遠端監控目標組織的印表機使用情況,記錄詳細的列印活動日誌,如列印頁數、列印時間和列印文件的內容。
-
電話/手機間諜軟體(Telephone/Cellphone Spyware)
- 電話或手機間諜軟體允許攻擊者全面監控目標手機,包括上網記錄、短訊內容及通話記錄,並將這些活動日誌發送至指定的網站或電子郵件中。
-
GPS 間諜軟體(GPS Spyware)
- GPS 間諜軟體利用全球定位系統來追蹤目標裝置的所在位置。它會記錄手機位置,並發送日誌到指定的電子郵件地址,方便攻擊者追蹤目標人的行蹤。
如何防範 Keylogger
-
使用
pop-up blockers
(彈出式窗口阻擋器) 並避免開啟垃圾郵件
-
安裝
anti-spyware
及 antivirus
(防間諜軟體及防病毒軟體)並保持簽名檔更新
-
安裝專業的
firewall software
(防火牆軟體) 及 anti-keylogging software
(防鍵盤記錄軟體)
-
識別
phishing emails
(釣魚郵件) 並刪除
-
定期更新及修補系統軟體
-
不要點擊未經請求或可疑郵件中的連結,這些連結可能會引導至惡意網站
-
使用
keystroke interference software
來在每次按鍵中插入隨機字元
-
在安裝前掃描檔案,並使用註冊表編輯器或
process explorer
來檢查是否存在鍵盤記錄器
-
使用
Windows on-screen keyboard
(螢幕鍵盤) 輔助工具來輸入密碼或其他機密資訊
-
安裝
host-based IDS
(基於主機的入侵檢測系統),監控系統並阻止鍵盤記錄器的安裝
-
使用自動填寫密碼管理器或
virtual keyboard
(虛擬鍵盤)來輸入用戶名及密碼
-
使用能夠頻繁掃描並監控系統或網路變化的軟體
硬體 Keylogger 對策
-
限制對敏感計算機系統的
physical access
(實體存取)
-
定期檢查鍵盤接口,確保沒有額外元件插入鍵盤連接器中
-
在鍵盤與其驅動之間使用
encryption
(加密)
-
使用能偵測硬體鍵盤記錄器(如
KeyGrabber
)存在的 anti-keylogger
(防鍵盤記錄器軟體)
-
使用螢幕鍵盤搭配滑鼠進行操作
-
定期檢查螢幕監控線纜,偵測是否存在硬體鍵盤記錄器
-
在計算機桌面周圍設置
video surveillance
(視訊監控),以檢測是否有惡意硬體添加
-
禁用
USB ports
(USB 埠)或設定高級 BIOS 驗證機制以啟用 USB 埠
如何防範間諜軟體 (Spyware)
-
避免使用您無法完全控制的任何計算機系統
-
調整瀏覽器安全性設置至中等或以上級別,針對互聯網區域進行設定
-
對可疑的電子郵件及網站保持謹慎
-
啟用防火牆以提升計算機的安全級別
-
定期更新軟體,並使用具備向外連線保護的防火牆
-
定期檢查
Task Manager
及 MS Configuration Manager
報告
-
定期更新病毒定義檔,並掃描系統是否存在間諜軟體
-
安裝並使用
anti-spyware software
(防間諜軟體)
-
安全地進行網頁瀏覽並謹慎下載
-
除非必要,避免使用管理員模式
-
保持作業系統為最新版本
-
避免從互聯網下載免費的音樂檔案、螢幕保護程式或表情符號
-
警惕任何彈出式窗口或網頁,切勿點擊這些窗口中的任何內容
-
仔細閱讀所有披露內容,包括軟體的許可協議及隱私聲明,安裝任何應用程式前務必詳細審查
Rootkits
-
Rootkits 是一種隱藏其存在及攻擊者惡意行為的程式,它們使攻擊者能夠在當前及未來對伺服器或主機進行完全訪問。
-
Rootkits 會取代某些作業系統的系統呼叫及工具,並使用它們自訂的版本,這些版本會削弱目標系統的安全性,並造成惡意功能被執行。
- 一個典型的 rootkit 組合可能包括後門程式、DDoS 程式、封包嗅探器、記錄刪除工具、IRC 機器人等。
攻擊者如何植入 Rootkit:
-
透過網路掃描來尋找易受攻擊的計算機及伺服器
-
將 Rootkit 包裝在特定的檔案中,例如遊戲檔案
-
透過社交工程安裝在公共電腦或公司電腦中
-
發動零日攻擊(例如權限提升、緩衝區溢位、Windows 核心漏洞利用等)
Rootkit 的目的:
-
控制主機並取得遠端後門(remote backdoor)存取權限
-
掩蓋攻擊者的行為軌跡及惡意應用程式或進程的存在
-
收集系統中的敏感資料、網路流量等資訊,這些資料通常是攻擊者受限或無法存取的
-
儲存其他惡意程式並充當更新伺服器的資源
Types of Rootkits (Rootkit 的種類)
-
Hypervisor Level Rootkit
- 作為虛擬機監控程式(Hypervisor),此類 Rootkit 會修改計算機系統的啟動順序,讓目標作業系統載入為虛擬機(Virtual Machine),以達到更深層的控制。
-
Hardware/Firmware Rootkit
- 藏匿於硬體裝置或平台韌體(Firmware)中,這些韌體未經過**程式碼完整性(Code Integrity)**檢查,進而進行控制或破壞。
-
Kernel Level Rootkit
- 向核心層添加惡意程式碼,或取代原始作業系統核心(OS Kernel)及驅動程式(Device Driver)的程式碼,從而達到全面控制系統的目的。
-
Boot Loader Level Rootkit
- 替換原始的啟動載入器(Boot Loader)程式碼,使用攻擊者控制的惡意版本,以便在系統啟動時執行惡意指令。
-
Application Level/User Mode Rootkit
- 替換一般的應用程式二進位檔(Application Binaries),例如使用假冒的木馬程式,或者修改現有應用程式的行為,通過注入惡意程式碼來執行特定操作。
-
Library Level Rootkits
- 取代原本系統的函式庫呼叫(System Calls),使用假的函式庫(Fake Libraries)來隱藏攻擊者的行蹤及相關資訊。
How a Rootkit Works (Rootkit 的運作方式)
Hooks(掛鉤)
-
Process (Before Hooking) - 掛鉤前的程序
- 原始程序代碼段包含
FindNextFile
的呼叫
- 匯入數據區段的
FindNextFile
地址為:0x87654321
- 執行的 DLL 為
Kernel32.dll
-
Process (After Hooking) - 掛鉤後的程序
- 當 Rootkit 進行掛鉤後,
FindNextFile
的呼叫地址被替換為 MyFindNextFile
- 匯入數據區段的
FindNextFile
地址被修改為:0x90045123(Rootkit 的地址)
- Rootkit 將原始指令的前 5 個位元組替換為
jmp 0x90045123
,以跳轉至 Rootkit 自行定義的 MyFindNextFile
函數
Direct Kernel Object Manipulation (DKOM) - 直接核心物件操作
-
Process 1(程序 1)
- 唯一的程序 ID 和
ActiveProcessLinks
(鏈接當前活動程序的鏈表)
-
LIST ENTRY
結構中包含 FLINK
(前向鏈接)和 BLINK
(後向鏈接)
- 正常情況下,
Process 1
的 FLINK
指向 Process 2
,而 Process 2
的 BLINK
指向 Process 1
,保持一個正常的程序列表結構
-
After Rootkit Infection(Rootkit 感染後)
- Rootkit 會通過直接修改
ActiveProcessLinks
的 FLINK
和 BLINK
,使 Process 2
從 Process 1
和 Process 3
之間的鏈表中解除連結
- 根據
ActiveProcessLinks
的變更,Process 1
的 FLINK
現在指向 Process 3
,而 Process 3
的 BLINK
指向 Process 1
- 這種操作讓
Process 2
從鏈表中消失,但仍然在系統中執行,使其無法被正常列出或檢測到。
總結:
DKOM Rootkit 透過從程序鏈表中解除連結來隱藏其存在,使得目標程序在系統中不可見,以此達到隱藏其惡意活動的目的。
常見的 Rootkits (Rootkit 類型)
以下介紹幾種著名的 Rootkits 及其特徵:
1. Purple Fox Rootkit
-
來源: Guardicore
-
特徵:
- Purple Fox 是一種複雜的惡意軟體攻擊,主要針對 Windows 系統,並且可以透過偽裝的惡意 Telegram 安裝程式散佈至其他機器。
- 此 Rootkit 可用於隱藏惡意程式並保持持久性。
- 支援 32 位元和 64 位元 Windows 版本,這讓它更具靈活性和持續性。
-
運作流程:
- Purple Fox 的主要目標是獲取 Windows 機器的控制權。
- 攻擊過程中的每個階段都會被隔離於環境中,幫助攻擊者躲避偵測。
- 惡意程式通過 “Telegram Desktop.exe” 文件進行隱藏,該文件是一個自動化腳本,同時安裝合法的 Telegram 應用程式和名為 “TextInputh.exe” 的惡意下載程式。
- “TextInputh.exe” 是最常見的惡意程式安裝器,執行後會連接至其指揮與控制(C2)伺服器。
- 該 Rootkit 通過後門獲取對目標系統的存取權限,允許攻擊者執行更多有害操作。
2. MoonBounce Rootkit
-
來源: Securelist
-
特徵:
- MoonBounce 是隱藏於 UEFI(統一可延伸韌體介面)固件中的惡意代碼,計劃在特定時間執行。
- 安全系統對這種植入物認知有限,因此難以偵測和移除。
- 它的攻擊流程比過去已知的 UEFI Bootkit 更為複雜。
- 目標是透過注入惡意驅動程式至 Windows 核心,在系統啟動過程中實現最大化持續性。
-
主要功能:
- 在系統啟動過程中將惡意驅動程式注入至 Windows 核心。
- 加快用戶模式惡意軟體的傳輸,執行從網路接收的額外負載程式(Payload)。
- 鎖定 EFI 系統分區(ESP),此分區作為目標會造成巨大的安全風險。
3. Demodex Rootkit
-
來源: Securelist
-
特徵:
- Demodex 是一種非常先進的 Rootkit,能在作業系統重安裝後仍然保持對目標設備的持續控制權。
- 它的主要目標是隱藏惡意軟體的痕跡,如文件、註冊表鍵以及網路流量,避免取證調查者和防禦系統的檢測。
-
特點:
- 結合了一個名為 Cheat Engine 的開源項目,幫助使用者躲避偵測。
- 能繞過 Windows 的安全特性和驅動程式簽名強制機制。
- 能防止未簽名的驅動程式被載入至系統。
Rootkit 偵測方法
以下是各種偵測 Rootkit 的技術和方法說明:
-
基於完整性檢測(Integrity-Based Detection)
- 將檔案系統(file system)、引導記錄(boot records)或記憶體(memory)的快照與已知可信基準進行比較,以確認是否有任何異常變更。
-
基於特徵碼檢測(Signature-Based Detection)
- 該技術將所有系統程序(system processes)及可執行檔案(executable files)的特徵與已知 Rootkit 指紋的資料庫進行比對,來檢測是否有匹配項。
-
基於啟發式/行為檢測(Heuristic/Behavior-Based Detection)
- 偵測系統中任何異常活動或行為偏差,這些異常行為可能是 Rootkit 存在的跡象。
-
執行路徑分析檢測(Runtime Execution Path Profiling)
- 該技術將系統所有程序及可執行檔案在感染 Rootkit 前後的執行路徑進行比較,以偵測任何異常變化。
-
交叉檢視偵測(Cross-View-Based Detection)
- 列舉電腦系統中的關鍵元素(例如:系統檔案、程序及註冊表鍵),並將其與不依賴於常規 API 的演算法所生成的類似數據集進行比對。如果這兩組數據存在差異,即可判定 Rootkit 存在。
-
替代受信媒體檢測(Alternative Trusted Medium)
- 先將受感染的系統關閉,然後從替代受信媒體(如可開機 CD-ROM 或 USB 隨身碟)啟動,來尋找 Rootkit 的蹤跡。
-
記憶體轉儲分析(Analyzing Memory Dumps)
- 將可疑系統的揮發性記憶體(RAM)轉儲並進行分析,以偵測 Rootkit 在系統中的存在。
偵測 Rootkit 的步驟
-
步驟 1
-
步驟 2
-
步驟 3
- 使用最新版的 WinMerge 軟體對這兩組結果進行比對,偵測隱藏檔案(即在系統中看不見,但從外部可以檢視的檔案)。
備註
- 這個過程可能會產生一些誤報(False Positives)。
- 此方法無法偵測隱藏於 BIOS、顯示卡、EEPROM、壞磁區區段或替代資料流(Alternate Data Streams)等地方的隱形惡意軟體。
如何防範 Rootkit 攻擊
-
重新安裝作業系統或應用程式:從可信任的來源重新安裝作業系統或應用程式,並在安裝前備份重要資料。
-
保持自動化安裝程序的良好紀錄:確保所有安裝步驟與程序有詳細的紀錄,以便追蹤和檢視。
-
執行核心記憶體轉儲分析:透過核心記憶體轉儲(kernel memory dump)分析來確認 Rootkit 是否存在。
-
強化工作站或伺服器的安全性:採取安全強化措施以抵禦潛在的攻擊。
-
教育員工:避免從不受信任的來源下載任何檔案或程式。
-
安裝網路和主機端防火牆:安裝並妥善配置防火牆來保護系統不受外部威脅侵害。
-
確保有可信任的恢復媒體:在系統受感染時,能夠使用可信任的恢復媒體進行系統還原。
-
更新並修補作業系統、應用程式與韌體:定期更新所有系統、應用程式及韌體,以確保系統修補了已知的漏洞。
-
定期驗證系統檔案完整性:使用具備加密性質的強健數位指紋技術來定期驗證系統檔案的完整性。
-
定期更新防毒及反間諜軟體:保持防毒及反間諜軟體的最新狀態,以防止新的威脅。
-
避免以管理員權限登錄:除非必要,否則避免使用具有管理員權限的帳戶進行操作。
-
遵循最低權限原則:限制使用者的權限,只給予執行工作所需的最低權限。
-
確保防毒軟體具備 Rootkit 保護功能:選擇具備 Rootkit 防護功能的防毒軟體,增強系統的安全性。
-
避免安裝不必要的應用程式:避免安裝不必要的應用程式,並停用未使用的功能和服務。
這些防禦策略有助於預防 Rootkit 攻擊,並降低 Rootkit 對系統所造成的風險
NTFS Data Stream
NTFS (New Technology File System) 的替代資料流 (Alternate Data Stream, ADS) 是一種 Windows 隱藏資料流,包含了檔案的中繼資料 (Metadata),如屬性、字數、作者名稱與存取時間、修改時間等資訊。
NTFS ADS 的主要功能與特點:
-
資料注入與隱藏 (Inject and Hide Data):
- ADS 允許攻擊者將惡意程式碼注入到現有的檔案中,而不改變檔案的功能、大小或顯示方式,這使得檔案在被瀏覽時看起來依然與原本相同,不會引起使用者的懷疑。
-
資料分流 (Fork Data):
- ADS 可以將資料分流 (Forking Data) 到現有檔案中而不改變其功能、大小或顯示方式,這樣即使使用者檢查檔案屬性或是使用一般瀏覽工具,仍無法察覺異常。
-
隱蔽性與執行性 (Stealth and Execution):
- ADS 允許攻擊者將惡意程式碼隱藏在檔案中並在不被偵測的情況下執行,因此即使檔案位於可存取的系統上,也不容易被防毒軟體偵測到。
NTFS ADS 攻擊案例:
- 攻擊者可以利用 NTFS ADS 將惡意程式碼注入到一個普通的檔案(例如 PDF 文件或圖片),使其表面上看起來是正常的檔案,但當被執行時,卻會載入或執行隱藏的惡意程式碼。
- 攻擊者也可以利用 ADS 將資料夾設定為某些隱藏檔案的指標,使這些惡意檔案在執行時從未顯示於使用者檢視的資料夾中。
ADS 在 NTFS 檔案系統中通常用於良性目的(如檔案附註),但攻擊者也可以藉由這種特性進行資料隱藏和惡意程式的散播,因此了解和防範 ADS 的使用是確保系統安全的必要措施。
如何創建 NTFS 資料流 (NTFS Streams)
使用 Notepad 建立 NTFS 資料流 (Notepad 是支援資料流的應用程式):
下列步驟演示如何在 NTFS 檔案系統中建立資料流,並使用 Notepad 查看和修改資料流中的內容。
步驟 1
步驟 2
步驟 3
- 檢視
myfile.txt
的檔案大小,應該顯示為 0 KB。這是因為 myfile.txt
本身不包含任何資料,所有資料都被分流至 lion.txt
和 tiger.txt
這兩個資料流中。
步驟 4
-
若要檢視或修改在步驟 1 和步驟 2 中隱藏的資料流內容,可以分別使用以下指令來打開資料流:
notepad myfile.txt:lion.txt
notepad myfile.txt:tiger.txt
解釋
-
myfile.txt:lion.txt
和 myfile.txt:tiger.txt
都是 myfile.txt
的 NTFS 資料流。
-
myfile.txt
本身只是一個包含資料流的檔案指標,其大小為 0 KB。
- 建立資料流的方式使得攻擊者可以將資料隱藏在主檔案中,而不改變主檔案的顯示大小和內容,達到隱蔽的效果。
NTFS 資料流的潛在風險
利用 NTFS 資料流來隱藏資料可以被用於惡意目的,例如:
- 隱藏惡意程式碼或不明檔案,繞過傳統防毒軟體的檢測。
- 用於將敏感資訊秘密儲存或傳輸,防止被普通使用者發現。
因此,在檢測和防範 NTFS 資料流時,必須使用專門的工具或指令來檢查檔案中是否存在未顯示的資料流內容。
NTFS 資料流操作 (NTFS Stream Manipulation)
範例介紹
此範例展示了如何使用 NTFS 資料流來隱藏和操作惡意程式(如 Trojan.exe),並將其移動到 Readme.txt 檔案中,以達到隱蔽惡意程式存在的效果。
步驟 1:將 Trojan.exe 的內容移至 Readme.txt 的資料流中
在第一步中,我們將 Trojan.exe 的內容放入 Readme.txt 的資料流中,使 Trojan.exe 雖然存在於 Readme.txt 中,但 Readme.txt 的檔案大小仍然顯示為 0 KB(因為資料被隱藏在 NTFS 資料流中)。
指令如下:
C:\>type c:\Trojan.exe > c:\Readme.txt:Trojan.exe
這個指令會將 Trojan.exe 的內容寫入 Readme.txt
的資料流 Trojan.exe
中,使其成為 Readme.txt
的一部分。
步驟 2:建立指向 Readme.txt 資料流中 Trojan.exe 的連結
接下來,我們建立一個捷徑(symlink)來連結到 Readme.txt
資料流中的 Trojan.exe,以便稍後執行這個隱藏的惡意程式。
指令如下:
C:\>mklink backdoor.exe Readme.txt:Trojan.exe
這個指令建立了一個名為 backdoor.exe
的捷徑檔案,指向 Readme.txt
檔案內的 Trojan.exe
資料流。
步驟 3:執行隱藏於 Readme.txt 中的 Trojan.exe 程式
最後,我們執行 backdoor.exe
,以運行隱藏於 Readme.txt
資料流中的 Trojan.exe。
指令如下:
C:\>backdoor
這個指令會執行 Trojan.exe,而不會顯示出原始的 Trojan.exe 檔案位置,達到隱蔽執行的效果。
結論
透過 NTFS 資料流操作,攻擊者可以隱藏惡意程式的真實位置,並繞過傳統的檔案系統檢測機制。這種技術可以用來儲存惡意程式碼、指令、或其他敏感資訊,而不被檔案大小或常規檢測手段所發現。因此,在執行安全檢查時,應考慮到 NTFS 資料流的風險,並使用專門的工具來檢測檔案中隱藏的資料流。
如何防禦 NTFS 資料流攻擊 (How to Defend against NTFS Streams)
-
刪除 NTFS 資料流
- 將可疑的檔案移動至 FAT 檔案系統分割區中,因為 FAT 分割區不支援 NTFS 資料流,此操作會移除所有隱藏在 NTFS 資料流中的資訊。
-
使用第三方檔案完整性檢查工具
- 使用第三方的檔案完整性檢查工具(如 Tripwire File Integrity Manager),以維護 NTFS 分割區中檔案的完整性,防止資料流被用於隱藏惡意程式碼或數據。
-
使用專業工具檢測 NTFS 資料流
- 使用像是 Stream Detector 或 GMER 等專業工具來檢測檔案中的隱藏資料流,以識別 NTFS 中是否存在異常資料流。
-
啟用即時防毒掃描
- 啟用即時防毒掃描功能,保護系統免受惡意資料流的攻擊。即時掃描可以偵測並阻止試圖在系統中執行的惡意資料流。
-
使用最新的防毒軟體
- 在系統中安裝並保持最新版本的防毒軟體,防止 NTFS 資料流中潛藏的惡意程式被執行或利用。更新的防毒軟體能夠更好地識別與移除最新的威脅。
What is Steganography?
隱寫術(Steganography)是指在其他資料中隱藏資料的藝術,而不被受害者察覺。它的目的在於隱藏訊息的存在。隱寫術將隱藏的資料以秘密方式嵌入至普通檔案中,如圖片、音訊、文字、聲音或影片等,並取代未使用的位元(bits)。這些被隱藏的資料可以是純文本(plaintext)、密文(ciphertext),甚至是影像檔。
Steganography 的應用方式及特性
-
隱藏的資料形式:
- 隱寫術的隱藏資料可以是任何格式,如純文本、密文或影像。使用影像作為隱藏資料的媒介是最常見的隱藏方式。
-
隱藏技術:
- 隱寫術將要隱藏的資料嵌入到普通的檔案中,例如圖像、聲音或影片等,並替換原本檔案中的部分位元。
-
與加密技術的差異:
- 與加密技術不同,加密是將資料轉換成無法閱讀的形式,而隱寫術則是隱藏訊息的存在,因此隱寫術的檢測通常更加困難。
-
惡意用途:
- 攻擊者通常利用隱寫術來隱藏惡意軟體、來源碼、攻擊計劃或溝通渠道等。例如,攻擊者可以將鍵盤記錄程式(Keylogger)隱藏在合法圖片中,當受害者點擊圖片時,鍵盤記錄程式就會開始捕捉受害者的鍵盤輸入。
-
資料傳輸與檢測困難:
- 隱寫術能夠規避一般監控技術的檢測,尤其在攻擊者無法直接使用加密技術時,隱寫術便成為了理想選擇。透過將資料以隱藏格式存放,即便攻擊者解密資料,訊息依然會被隱藏。
攻擊者利用 Steganography 的方式
- 攻擊者可以將攻擊工具的來源碼、被入侵的伺服器列表、未來攻擊計畫、溝通和協調渠道等資訊隱藏於圖片、聲音或影片中。
- 當傳統加密方式無法使用時,攻擊者可以利用隱寫術來躲避偵測,並將資料以加密格式隱藏於檔案中,進一步增加資料的隱密性。
隱寫術廣泛用於惡意活動中,因為它能夠在保持檔案正常運行的同時,隱藏重要的機密訊息,使其難以被發現和移除。了解隱寫術及其特性對於資訊安全及攻擊偵測至關重要。
根據封面媒介(Cover Medium)分類的隱寫術類型
隱寫術(Steganography)是一種將隱藏訊息嵌入普通檔案中,使得除了預期的接收者之外,任何人都無法察覺訊息存在的技術。隨著電子檔案格式和新技術的廣泛應用,資料隱藏變得更加可行。基本的隱寫術可以分為兩個主要領域:資料隱藏(Data Hiding)和文件製作(Document Making)。文件製作主要處理防範資料被移除的問題,其進一步的分類包含浮水印(Watermarking)和指紋識別(Fingerprinting)。
以下是幾種常見的隱寫術類型及其簡介:
-
Image Steganography(影像隱寫術):
- 將隱藏的資料嵌入至圖像的像素中,而不改變影像的可見品質。常見技術如利用圖片的最低有效位元(Least Significant Bit, LSB)來進行資料隱藏。
-
Document Steganography(文件隱寫術):
- 將隱藏的訊息嵌入至文書檔案中,透過調整字母間距、字體格式或段落間距等方式來隱藏訊息。
-
Folder Steganography(資料夾隱寫術):
- 利用資料夾名稱、屬性或結構來隱藏資料,這樣可以將檔案或資料隱藏在多層資料夾中,使其難以被發現。
-
Video Steganography(影片隱寫術):
- 將資料隱藏於影片檔案中,透過改變影像的幀或聲音中的某些特徵來進行資料隱藏。
-
Audio Steganography(音訊隱寫術):
- 利用音訊檔案中的位元流來嵌入訊息,可以調整音樂的頻率、相位、或是將資料放置在無聲區域中。
-
Whitespace Steganography(空白隱寫術):
- 使用空白字符(如空格、Tab 鍵或換行符號)來隱藏資料。這些字符在文件中看起來沒有變化,但實際上隱藏了訊息。
-
Web Steganography(網頁隱寫術):
- 通過修改網頁上的元素(如HTML標籤、CSS屬性或JavaScript程式碼)來隱藏資料,使用者在瀏覽網頁時不會察覺訊息的存在。
-
Spam/Email Steganography(垃圾郵件/電子郵件隱寫術):
- 在垃圾郵件或電子郵件內容中加入隱藏訊息,透過改變字母的順序或格式來進行資料隱藏。
-
DVD-ROM Steganography(DVD 隱寫術):
- 利用 DVD-ROM 磁碟上的文件結構或區塊配置來隱藏資料,這樣可以使資料隱藏在光碟內容中而不被察覺。
-
Natural Text Steganography(自然語言文本隱寫術):
- 在自然語言文本中隱藏資料,透過修改文法結構或詞語順序來隱藏訊息。
-
Hidden OS Steganography(隱藏作業系統隱寫術):
- 將資料隱藏在作業系統的檔案系統或結構中,這樣攻擊者可以創建一個隱藏的作業系統,用來存取或儲存敏感資訊而不被察覺。
-
C++ Source-Code Steganography(C++原始碼隱寫術):
- 在 C++ 程式碼中嵌入隱藏訊息,透過改變註解或程式碼格式來隱藏資料,而不影響程式的執行結果。
隱寫分析(Steganalysis)
隱寫分析(Steganalysis) 是利用隱寫術進行偵測與反制的技術,用來揭露並解讀藏匿於各種媒介中的隱蔽訊息。其目的是識別隱藏的資料,以便進行進一步的處理與分析。
隱寫術的逆向過程:
-
隱寫分析的目標 是藉由各種方法來發現和呈現隱蔽的訊息。
-
它負責偵測 嵌入在影像、文字、音訊、視訊等載體媒介中的隱藏訊息。
隱寫分析的挑戰:
-
嫌疑資料流可能含有或不含有隱藏資料:
- 有時候無法確定可疑訊息中是否存在隱藏的資料,這使得分析的精準度和效率成為挑戰。
-
偵測數位影像中隱藏內容的困難性:
- 數位影像的結構和特性複雜,隱寫術可以以極小的變化來隱藏資料,導致偵測變得更加困難。
-
訊息可能在嵌入至檔案或信號之前被加密:
- 隱寫訊息經過加密處理後再嵌入,這樣即使發現了隱藏的訊息,也需要額外的解密步驟才能讀取內容。
-
部分可疑信號或檔案可能包含與隱藏資料無關的雜訊或無意義的數據:
- 這些無關的數據或雜訊可能會混淆分析者,增加檢測和判斷的困難度。
維持持久性(Establishing Persistence)
當攻擊者設法讓受害者執行含有惡意程式碼的檔案或下載惡意程式時,就會建立所謂的「持久性」。持久性可讓攻擊者在不被偵測到的情況下,持續感染系統中的不同組件。當持久性成功建立後,攻擊者可以透過後門(Backdoor)頻道進行各種惡意活動,並且即使目標系統重新啟動,惡意軟體仍可不斷地自行複製與執行。
利用系統啟動或登入時自動執行來維持持久性
攻擊者可以利用系統啟動或登入時的自動啟動程序,來提升權限或執行持久性攻擊。他們可以在受感染的機器上自訂配置設定,藉此在系統啟動或使用者登入時自動執行某個程序。這種技術使攻擊者得以在受感染的系統中自動執行惡意程式,進而取得更高的權限,或在系統中保持持久性的控制權。
作業系統(OS)支援的自動執行機制
作業系統(例如 Windows 和 Linux)中有許多自動執行機制,它們允許系統在啟動或使用者登入時自動執行特定目錄內的程式或配置設定。這些自動執行的機制可被攻擊者濫用,用來將惡意程式碼植入自動執行程序,達到持久化控制目標系統的目的。
舉例來說:
-
Windows 系統中,攻擊者可能會修改註冊表中的「Run」或「RunOnce」鍵值,或者植入惡意程式至
Startup
目錄,使其在系統每次啟動或使用者登入時自動執行。
-
Linux 系統中,攻擊者可能會修改
/etc/rc.local
或 /etc/init.d/
中的自動執行腳本來達成相同的目的。
這些方法可讓攻擊者在系統中建立持久性,即使受害者嘗試重新啟動系統或登出、登入,都難以移除攻擊者的控制權。
透過不同路徑達成網域主控權(Domain Dominance Through Different Paths)
-
網域主控權(Domain Dominance) 是指取得目標系統中關鍵資產(例如網域控制器)的控制權,並進而取得對其他網路資源的訪問權限。
- 攻擊者常透過 社交工程(Social Engineering) 技術來對內部使用者發動攻擊,以達成網域主控權的目的。
網域主控權技術(Domain Dominance Techniques)
以下列出數種常見的網域主控權攻擊技術:
-
遠端程式碼執行(Remote Code Execution)
- 攻擊者可在合法使用者的主機上執行惡意程式碼,進而透過使用者的權限來進一步控制網域。
-
濫用資料保護 API(Abusing Data Protection API, DPAPI)
- DPAPI 是用來保護 Windows 中機密資料(如密碼和加密金鑰)的 API。攻擊者可利用該 API 中的漏洞來解密這些敏感資訊。
-
惡意複製(Malicious Replication)
- 攻擊者可利用域內複製服務(例如 Active Directory Replication Services)來取得使用者帳號的複製資料,進而取得帳戶資訊。
-
Skeleton Key 攻擊
- Skeleton Key 是一種後門技術,攻擊者可透過它在不改變現有密碼的情況下,增加一個通用密碼來存取所有帳戶。
-
金票攻擊(Golden Ticket Attack)
- 攻擊者使用 KDC(Key Distribution Center)的伺服器金鑰來偽造 Kerberos 金票,並藉此取得網域內無限制的存取權限。
-
銀票攻擊(Silver Ticket Attack)
- 攻擊者透過取得服務金鑰(Service Account Key)來偽造 Kerberos 服務票,進而取得特定服務的存取權限。
Linux 後滲透 (Post-Exploitation)
在攻陷並獲得目標系統的 shell 存取權後,攻擊者會嘗試進行進一步的滲透以獲得對其他資源的完全控制,並達到長期保持對系統的滲透存取。
以下列出了一些基於 Linux 的後滲透指令。
檔案系統相關指令 (File-System Commands)
指令 |
說明 |
find / -perm -3000 -ls 2>/dev/null |
尋找 SUID 可執行檔案 |
find / -path /sys -prune -o -path /proc -prune -o -type f -perm -o=w -ls 2>/dev/null |
尋找系統中所有可被任何使用者寫入的檔案 |
chmod o-w file |
禁止其他使用者對檔案進行寫入 |
find / -path /sys -prune -o -path /proc -prune -o -type d -perm -o=w -ls 2>/dev/null |
尋找系統中所有可被任何使用者寫入的目錄 |
find / -name "*.txt" -ls 2>/dev/null |
搜尋系統中所有 .txt 檔案 |
sudo -l |
顯示當前使用者可執行的指令列表以及被禁止的指令列表 |
openssl s_client -connect <hostname>:<port> -showcerts |
顯示所有憑證詳細資訊 |
keytool -list -v -keystore keystore.jks |
顯示 keystore 檔案中憑證內容及別名列表 |
資訊蒐集相關指令 (Information-Gathering Commands)
指令 |
說明 |
ps -ef |
顯示當前所有進程及其 PID (Process ID) |
mount |
將檔案系統掛載到目錄樹中 |
route -n |
顯示主機/網路名稱與數值形式的 IP 位址 |
/sbin/ifconfig -a |
顯示網路介面組態詳細資料 |
cat /etc/crontab |
顯示正在執行的 cron 任務 |
ls -la /etc/cron.d |
顯示指定 cron 任務使用的軟體包名稱 |
cat /etc/exports |
顯示系統中可被 NFS 用戶端存取的目錄列表 |
cat /etc/redhat* /etc/debian* /etc/*release |
顯示作業系統的詳細版本資訊 |
ls /etc/rc* |
列出所有啟動時執行的服務 |
egrep -e '/(bin/ba)?sh' /etc/passwd |
顯示所有擁有 shell 存取權的使用者列表 |
cat ~/.ssh/ |
顯示 SSH 關聯及登入資訊 |
Windows 後滲透攻擊指令 (Windows Post-Exploitation Commands)
檔案系統指令 (File-System Commands)
指令 |
描述 |
dir /a:h |
顯示具有隱藏屬性的目錄名稱 |
findstr /E ".txt" > txt.txt |
檢索所有 .txt 文件並輸出至 txt.txt 中 |
findstr /E ".log" > log.txt |
檢索所有 .log 文件並輸出至 log.txt 中 |
findstr /E ".doc" > doc.txt |
檢索所有 .doc 文件並輸出至 doc.txt 中 |
雜湊計算指令 (Hash Computing Commands)
指令 |
描述 |
Get-FileHash <file-name> -a md5 |
生成 MD5 雜湊值 |
Get-FileHash <file-name> -a sha1 |
生成 SHA-1 雜湊值 |
Get-FileHash <file-name> |
預設生成 SHA-256 雜湊值 |
註冊表指令 (Registry Commands)
指令 |
描述 |
reg query HKLM /f credential /t REG_SZ /s > hklm_password.txt |
在註冊表中檢測名稱為“credential”的值 |
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated > reg_always.txt |
安裝具有提升權限的軟體 |
reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall >> ListofInstalledPrograms.txt |
查詢註冊表中已安裝軟體的列表並匯出至 ListofInstalledPrograms.txt |
排程指令 (Scheduler Commands)
指令 |
描述 |
schtasks /query /fo LIST /v > schtasks.txt |
檢索系統中所有已排程的任務列表並輸出至 schtasks.txt |
tasklist /SVC > tasklist.txt |
顯示當前正在執行的所有進程並輸出至 tasklist.txt |
Windows 管理指令 (WMIC Commands)
指令 |
描述 |
wmic os where Primary='TRUE' reboot |
重新啟動 Windows |
wmic service get name,displayname,pathname,startmode > wmic_service.txt |
查詢服務名稱、可執行路徑等,並輸出至 wmic_service.txt |
wmic /node:"<IP address>" product get name,version,vendor |
顯示已安裝軟體的詳細資訊 |
wmic cpu get |
查詢 CPU 詳細資訊 |
wmic useraccount get name,sid |
顯示使用者名稱及 SID 資訊 |
網路指令 (Net Commands)
指令 |
描述 |
net config rdr |
顯示域名連接的詳細資訊 |
net computer \\<computername> /add |
新增一台電腦至域名中 |
net view |
顯示域名中的電腦與網路設備列表 |
net view \\host |
顯示主機名稱 |
net share |
管理共享資源的設定 |
網路指令 (Network Commands)
指令 |
描述 |
route print or netstat -r |
顯示路由表與目的地路由資訊 |
arp -a |
顯示 ARP 表中指定 IP 地址的 MAC 地址 |
ipconfig /all |
顯示 IP 設定的詳細資訊 |
getmac |
顯示系統中所有網卡的 MAC 位址 |
服務指令 (Service Commands)
指令 |
描述 |
sc queryex type=service state=all |
顯示系統中所有可用服務列表 |
`sc queryex type=service state=all |
find /i "Name of the service: myService"` |
net start or stop |
啟動或停止一項網路服務 |
netsh firewall show state |
顯示防火牆當前狀態 |
netsh firewall show config |
顯示防火牆設定檔案 |
netsh advfirewall set currentprofile state off |
關閉目前設定檔防火牆 |
netsh advfirewall set allprofiles state off |
關閉所有設定檔的防火牆 |
遠端執行指令 (Remote Execution Commands)
指令 |
描述 |
wmic /node:<IP address> /user:administrator /password:$PASSWORD bios get serialnumber |
顯示目標電腦的序號 |
taskkill.exe /S <IP address> /U domain\username /F /FI "eset" |
終止與 ESET 相關的服務 |
tasklist.exe /S <IP address> /U domain\username |
顯示用戶所執行的進程列表 |
tasklist.exe /S <IP address> /U domain\username /FI "USERNAME eq NT AUTHORITY\SYSTEM" /FI "STATUS eq running" |
顯示 NT AUTHORITY\SYSTEM 帳號正在執行的進程 |
Sysinternals 指令 (Sysinternals Commands)
指令 |
描述 |
psexec -i \\<RemoteSystem> cmd |
在遠端系統中建立互動式 CMD 視窗 |
psexec -i \\<RemoteSystem> -c file.exe |
複製 file.exe 到遠端電腦並執行 |
psexec -i -d -s c:\windows\regedit.exe |
提取遠端系統的安全密碼及 SAM 資料庫內容 |
psexec -i \\<RemoteSystem> ipconfig /all |
顯示遠端系統的網路設定 |
Metasploit 指令 (Metasploit Commands)
指令 |
描述 |
msf > use exploit/windows/local/ps_wmi_exec |
執行本機漏洞攻擊模組 |
msf exploit(windows/local/ps_wmi_exec) > show targets |
顯示所有可攻擊目標 |
msf exploit(windows/local/ps_wmi_exec) > show options |
顯示可選項目 |
msf exploit(windows/local/ps_wmi_exec) > show payloads |
顯示所有可用的有效負載 |
msf exploit(windows/local/ps_wmi_exec) > show evasion |
顯示所有可用的避難選項 |
如何防禦持久性攻擊 (How to Defend Against Persistence Attacks)
以下列出了一些防禦網域控制權攻擊的對策:
-
經常更換 KRBTGT 的密碼
- 定期更換 KRBTGT 帳戶的密碼,以降低攻擊者利用憑證持續性滲透的風險。
-
僅在必要時使用管理員憑證
- 管理員憑證僅應用於必須共用資料的情況,避免不必要的憑證暴露。
-
根據使用者角色授予存取權限
- 基於使用者角色來分配存取權限,減少過度授權的風險。
-
定期進行系統補丁管理
- 定期更新作業系統及應用程式的補丁,防止已知漏洞被攻擊者利用。
-
部署最低權限存取模型
- 使用最低權限原則來限制使用者及網域管理員帳戶的存取,避免權限被濫用。
-
監控 Kerberos TGTs 及網域複製活動
- 定期監控 Kerberos 票證的生成及網域控制器之間的複製活動,以偵測異常操作。
-
定期更改 KRBTGT 的密碼並重設服務兩次
- 定期執行此操作可以重新設定 Kerberos 驗證系統,防止使用舊憑證進行攻擊。
-
外部驗證 Kerberos 協定以確保 TGTs 不被偽造
- 透過外部驗證機制確保 Kerberos 票證未被偽造或竄改。
-
進行資安意識教育及訓練
- 針對社交工程、密碼建立策略及其他安全議題進行訓練,以提升使用者安全意識。
-
嚴格遵守密碼政策
- 嚴格執行密碼策略(例如:密碼長度、週期性變更等)來強化使用者帳戶的安全性。
-
確保 Kerberos 執行 PAC 簽章及 KDC 驗證
- 確保 Kerberos 在進行授權時會簽署 Privilege Attribute Certificate (PAC),並透過金鑰分發中心 (KDC) 驗證。
-
使用 Kerberos 驗證工具確認票證的合法性
- 部署驗證工具來確認由有效 KDC 提供的票證是否合法。
-
安裝 KB2871997 修補程式來限制管理員帳戶存取
- 在 Windows 7 及更高版本中安裝 KB2871997 修補程式,來限制預設管理員帳戶的存取權限。
-
限制系統內部憑證的重疊使用來減少橫向移動
- 使用權限管理來限制憑證重疊使用,降低攻擊者在網域內橫向移動的風險。
-
針對本地帳戶實施 UAC 限制來減少通過哈希值攻擊
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy
-
將網域使用者限制於本地管理員群組中
- 將網域使用者限制於本地管理員群組中,降低權限過度提升的風險。
-
使用 Windows 防火牆限制入站流量
- 使用防火牆規則來限制網路中的入站流量,以防止潛在攻擊。